//
// Created by Administrator on 2024/6/17.
//
#include "stdio.h"
/**
 * 条件编译
 * 条件编译是根据实际定义宏（某类条件）进行代码静态编译的手段。可根据表达式的值或某个特定宏是否被定义来确定编译条件。最常见的条件编译是防止重复包含头文件的宏，
 */
//宏定义，按照是否带参数通常分为对象宏、函数宏两种。
//对象宏: 不带参数的宏被称为"对象宏(objectlike macro)"。对象宏多用于定义常量、通用标识。例如：
#define MAX_LENGTH 100
#define sLog printf
#define _DEBUG
//函数宏：带参数的宏。利用宏可以提高代码的运行效率: 子程序的调用需要压栈出栈, 这一过程如果过于频繁会耗费掉大量的CPU运算资源。
//所以一些代码量小但运行频繁的代码如果采用带参数宏来实现会提高代码的运行效率。但多数c++程序不推荐使用函数宏，调试上有一定难度，可考虑使用c++的inline代替之
#define MIN(a,b)((a)>(b)?(a):(b))
#define SAFE_DELETE(p){if(NULL!=p){delete p;p=NULL}}
//#undef可以取消宏定义，与#define对应。
//defined defined用来测试某个宏是否被定义。defined(name): 若宏被定义，则返回1，否则返回0。
//它与#if、#elif、#else结合使用来判断宏是否被定义，乍一看好像它显得多余,
// 因为已经有了#ifdef和#ifndef。defined可用于在一条判断语句中声明多个判别条件；#ifdef和#ifndef则仅支持判断一个宏是否定义。

/**
 *
 * @return
 */
int main50(){
    return 0;
}